1. Field of Invention
The present invention relates generally to the management of computer networks and more particularly, to methods and apparatuses for improving network performance through the configuration of network resources.
2. Description of Related Art
A computer network is a collection of autonomous computers interconnected via a communications system. The network permits the computers to share central hardware or software resources such as a particular computer, a set of particular software applications or data files such as a database, or a set of peripheral devices, including disk drives, printers, CD-ROM drives, modems, and the like. A shared central computer providing data files or applications is known as a "server"; the computers or network devices (printers, disk drives, modems, etc.) communicating with the server are known as "nodes". Where a node is computer running multiple application programs, the individual application programs are "clients" of the server. This is because each application program can communicate with the server using a different network level protocol, as further described below.
Networks are often comprised of "subnets" connected together. Typically, subnets are collections of Local area network (LAN) segments residing within a single physical structure, such as an office building. Within a LAN segment, a number of nodes are connected to a hub, and the hub is connected to other hubs to form the segment. Communication between LAN segments is accomplished with switching elements such as routers, bridges, LAN switches, and gateways. A wide area network (WAN) interconnects remotely located subnets.
The "topology" of a network is the physical and logical organization of devices on the network. The topology of the network can be generally described as rings (closed looped arrangements of nodes), buses (linear arrangements of nodes), stars (nodes radially connected), or a general mesh structure having no particular geometry.
The communication between devices on a network is governed by a collection of network protocols. Each protocol is a set of rules for communication that defines the pattern or format of data transmitted on the network, and the procedure for such transfers. Low level, or access, protocols allow network devices to connect to each other and communicate with higher level protocols. High level protocols allow the interconnection of heterogeneous subnets comprised of differing device platforms (personal computers, mainframes, or minicomputers), and access protocols.
Given the variety of topologies, protocols, and devices that can comprise a network, there are two fundamental problems in configuring networks. First, for existing networks, there is a need to optimize the configuration of network devices and topologies using actual measured performance data. Optimization is required to position shared central resources, such as server, according to its usage by the network's nodes. More particularly, the optimization question considers where in the network to position the shared central resource given:
1. The identity of the shared central resource and its clients; PA1 2. How each client is attached to the network; PA1 3. The amount of traffic flowing between each client and the shared central resource; PA1 4. The network topological structure; PA1 5. The network protocols used by the clients in communicating with the shared central resource; and PA1 6. A set of network performance objectives to use in seeking the optimal shared central resource position, for example, minimum average communication delay or minimum hops between the clients and the shared central resource.
Similarly, optimization is needed to identify the best configuration of segments in a given area of a network in light of network traffic flow. More specifically, it is often necessary to configure the positioning of hubs within a LAN segment to improve traffic flow. The traffic flow within a network segment is generally related to the type of work done by users of the network, where users accessing common resources or files form logical, though often not physical, work groups. Accordingly, it is desirable to optimize the configuration of network segments to better balance the traffic flow requirements between such logical groups. Further, segment optimization becomes particularly significant because of the high labor cost associated with re-wiring an already existing wiring plan. In metropolitan areas such as New York city the labor cost component accounts for well over 50% of the total LAN investment. In partitioning a network segment, it is thus desirable to preserve the existing hubs, hub locations, hub to hub wiring plans, and node to hub wiring (to avoid for example the need for running new wires from a station on the 50-th floor to a hub on the 1-st floor). This is because rewiring may require shutting all use of network segment for many hours or even days (in a high rise office building). In addition, because network managers generally have various network performance objectives, in these circumstances there also is a need to optimize the network to meet these performance objectives.
Currently, network managers are limited to tools that can measure and collect performance data, such as internodal traffic, communication cycle times, error rates, segment utilization, and the like. These tools can analyze the data to determine network performance according to a number of performance parameters. In addition, other tools address the interconnection of network routers to minimize link usage costs. In either case, it remains up to the network manager, using personal knowledge and experience, to decide how to configure the network in light of the performance data to meet general performance objectives such as least delay. This process is generally one of trial and error, and typically leads to wrong solutions, resulting in economic and performance losses.
The second problem is the optimization of network design prior to actual implementation. This requires the ability to model a given network topology, including its protocols, and devices, and to simulate the actual operation of the network at all its levels. Once the network is accurately simulated, performance data can be gathered and the proposed network optimized to meet performance objectives specified by a network manager.
Current simulation tools provide only limited capability to model all the details of an actual network. These network models do not capture the internodal activity in sufficient granularity to simulate realistic network behavior. In addition, simulation tools require extensive computation time, limiting their effectiveness for real time simulation, optimization analysis and network design. Accordingly, what is needed is a simulation tool which accurately models network interaction and allows near real time simulation.